﻿package view.controller
{
    import com.core.*;
    import plugin.newvip.model.*;
    import view.*;

    public class PowerCheckControl extends Object
    {
        private var mDataList:Array;
        private static var mInstance:PowerCheckControl;

        public function PowerCheckControl()
        {
            this.mDataList = [];
            return;
        }// end function

        public function check(param1:Object) : void
        {
            if (!param1 || !param1[4])
            {
                return;
            }
            if (param1[4] && param1[4].autonopen == 1)
            {
                return;
            }
            var _loc_2:* = ModelProxy.getValue("data", "option");
            if (_loc_2.hideskill == 1)
            {
                return;
            }
            if (param1 == null || param1[2] == 2 && param1[4].cls != 23)
            {
                return;
            }
            var _loc_3:int = 0;
            while (_loc_3 < this.mDataList.length)
            {
                
                if (this.mDataList[_loc_3][0] == param1[0])
                {
                    return;
                }
                _loc_3++;
            }
            this.mDataList.push(param1);
            if (DialogMgr.instance.dialogVisible(AppDialog.POWER_UP))
            {
                return;
            }
            this.showPowerUp();
            return;
        }// end function

        public function showPowerUp() : void
        {
            var _loc_4:Object = null;
            var _loc_5:int = 0;
            var _loc_6:Object = null;
            var _loc_7:int = 0;
            var _loc_8:String = null;
            var _loc_9:Array = null;
            var _loc_10:Object = null;
            var _loc_11:int = 0;
            var _loc_12:int = 0;
            var _loc_13:Object = null;
            var _loc_14:int = 0;
            var _loc_15:Object = null;
            var _loc_16:Boolean = false;
            var _loc_17:int = 0;
            var _loc_18:int = 0;
            var _loc_19:Object = null;
            var _loc_20:int = 0;
            var _loc_21:Object = null;
            var _loc_22:int = 0;
            if (this.mDataList.length <= 0)
            {
                return;
            }
            var _loc_1:* = this.mDataList.pop();
            if (!_loc_1 || _loc_1 && !_loc_1[4])
            {
                this.showPowerUp();
                return;
            }
            var _loc_2:* = _loc_1[1];
            var _loc_3:* = _loc_1[4];
            if (_loc_3.cls == 23)
            {
                _loc_4 = UserData.getUserData("skills");
                _loc_5 = UserData.getUserData("career");
                _loc_6 = ConfigDictionary.data.skillgroup;
                _loc_7 = 0;
                _loc_8 = _loc_3.skilladd;
                _loc_9 = _loc_8.split("#");
                _loc_7 = int(_loc_9[0]) * 100;
                if (_loc_6[_loc_7] == null)
                {
                    this.showPowerUp();
                    return;
                }
                if (_loc_6[_loc_7] && _loc_6[_loc_7].careertype != _loc_5)
                {
                    this.showPowerUp();
                    return;
                }
                for each (_loc_10 in _loc_4)
                {
                    
                    if (_loc_10.groupid == _loc_7)
                    {
                        this.showPowerUp();
                        return;
                    }
                }
                _loc_11 = VipCheck.checkVipLevel();
                if (int(_loc_6[_loc_7][1].vip) > 0 && _loc_11 < int(_loc_6[_loc_7][1].vip))
                {
                    this.showPowerUp();
                    return;
                }
                _loc_12 = UserData.getUserData("guanzhi");
                if (_loc_12 < int(_loc_6[_loc_7][1].guanzhi))
                {
                    this.showPowerUp();
                    return;
                }
                _loc_13 = UserData.getOnlineData();
                _loc_14 = _loc_13.guanyin;
                if (_loc_14 < int(_loc_6[_loc_7][1].guanyin))
                {
                    this.showPowerUp();
                    return;
                }
                if (_loc_6[_loc_7][1].studylv > ModelProxy.getValue("data", "user.level"))
                {
                    this.showPowerUp();
                    return;
                }
                DialogMgr.instance.open(AppDialog.POWER_UP, _loc_1);
                return;
            }
            if (_loc_3.uselv > ModelProxy.getValue("data", "user.level"))
            {
                this.showPowerUp();
                return;
            }
            if (_loc_3.reinlv > ModelProxy.getValue("data", "user.rein"))
            {
                this.showPowerUp();
                return;
            }
            if (_loc_2 == 2)
            {
                if (_loc_3.cls != 8 || _loc_3.career != ModelProxy.getValue("data", "user.career"))
                {
                    this.showPowerUp();
                    return;
                }
            }
            if (_loc_3.sex != 2 && _loc_3.sex != ModelProxy.getValue("data", "user.sex"))
            {
                this.showPowerUp();
                return;
            }
            if (_loc_2 != 2)
            {
                if (_loc_3.career != 0 && _loc_3.career != ModelProxy.getValue("data", "user.career"))
                {
                    this.showPowerUp();
                    return;
                }
                _loc_15 = ModelProxy.getValue("data", "bag");
                _loc_16 = false;
                _loc_17 = 1;
                while (_loc_17 <= _loc_15.maxcount)
                {
                    
                    if (_loc_15[_loc_17] && _loc_15[_loc_17][1] == 1 && _loc_15[_loc_17][0] == _loc_3.id)
                    {
                        _loc_16 = true;
                        break;
                    }
                    _loc_17++;
                }
                if (_loc_16 == false)
                {
                    this.showPowerUp();
                    return;
                }
                _loc_18 = this.getPowValue(_loc_3);
                _loc_19 = ModelProxy.getValue("data", "arms");
                _loc_20 = _loc_3.cls;
                if (_loc_20 == 3 && _loc_19[_loc_20] != null)
                {
                    if (this.getPowValue(_loc_19[_loc_20]) > this.getPowValue(_loc_19[10]))
                    {
                        _loc_20 = 10;
                    }
                }
                else if (_loc_20 == 2 && _loc_19[_loc_20] != null)
                {
                    if (this.getPowValue(_loc_19[_loc_20]) > this.getPowValue(_loc_19[9]))
                    {
                        _loc_20 = 9;
                    }
                }
                _loc_21 = _loc_19[_loc_20];
                _loc_22 = 0;
                if (_loc_21 != null)
                {
                    _loc_22 = this.getPowValue(_loc_21);
                }
                if (_loc_22 >= _loc_18)
                {
                    this.showPowerUp();
                    return;
                }
            }
            DialogMgr.instance.open(AppDialog.POWER_UP, _loc_1);
            return;
        }// end function

        private function getPowValue(param1:Object) : int
        {
            var _loc_17:Array = null;
            var _loc_18:String = null;
            var _loc_19:Array = null;
            var _loc_20:int = 0;
            var _loc_21:Object = null;
            var _loc_22:Object = null;
            if (param1 == null || !param1.hasOwnProperty("itemid"))
            {
                return 0;
            }
            return param1.nbvalue;
            if (_loc_16 != null)
            {
                for each (_loc_20 in _loc_16)
                {
                    
                    if (_loc_20 > 1)
                    {
                        _loc_21 = ConfigDictionary.data.item;
                        _loc_22 = _loc_21[_loc_20];
                        if (_loc_22 != null)
                        {
                            if (_loc_3 > 0)
                            {
                                var _loc_13:* = _loc_13 + int(_loc_22.phyAttMax);
                                var _loc_14:* = _loc_14 + int(_loc_22.phyAtt);
                            }
                            else if (_loc_5 > 0)
                            {
                                _loc_13 = _loc_13 + int(_loc_22.magicAttMax);
                                _loc_14 = _loc_14 + int(_loc_22.magicAtt);
                            }
                            else if (_loc_7 > 0)
                            {
                                _loc_13 = _loc_13 + int(_loc_22.taoAttMax);
                                _loc_14 = _loc_14 + int(_loc_22.taoAtt);
                            }
                            if (_loc_22.hp > 0)
                            {
                                var _loc_11:* = _loc_11 + int(_loc_22.hp);
                            }
                            if (_loc_22.mp > 0)
                            {
                                var _loc_12:* = _loc_12 + int(_loc_22.mp);
                            }
                            if (_loc_22.phyDefMax > 0)
                            {
                                var _loc_9:* = _loc_9 + int(_loc_22.phyDefMax);
                            }
                            if (_loc_22.magicDefMax > 0)
                            {
                                var _loc_10:* = _loc_10 + int(_loc_22.magicDefMax);
                            }
                        }
                    }
                }
            }
            var _loc_2:* = int(((_loc_13 + _loc_14) / 2 + (_loc_9 + _loc_10) * 0.3 + _loc_11 / 10 + _loc_12 / 30) * 2);
            return _loc_2;
        }// end function

        public static function get instance() : PowerCheckControl
        {
            if (!mInstance)
            {
                mInstance = new PowerCheckControl;
            }
            return mInstance;
        }// end function

    }
}
